package com.hyl.utils;

import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSON;
import com.hyl.websocket.bean.ResultMessage;

/**
 * 封装json格式的消息工具类
 */
public class MessageUtil {

    /**
     *
     * @param isSystemMessage 是否是系统消息 广播是系统消息 私聊不是
     * @param fromName 谁发送的
     * @param message 具体消息内容
     * @param offline 是否离线消息
     * @return
     */
    public static String getMessage(boolean isSystemMessage, String fromName, Object message , boolean offline){
        try {
            ResultMessage resultMessage = new ResultMessage();
            resultMessage.setSystem(isSystemMessage);
            resultMessage.setMessage(message);
            //校验fromName是否为空 系统消息默认为null
            if(ObjectUtil.isNotNull(fromName)){
                resultMessage.setFromName(fromName);
            }
            if(offline){
                resultMessage.setOffline(true);
            }else {
                resultMessage.setOffline(false);
            }
            return JSON.toJSONString(resultMessage);
        }catch (Exception e){
            throw new RuntimeException("消息序列化失败", e);
        }
    }
}
